<?php
namespace Functions\Model;
use Think\Model;
/**
 * 套系类型操作
 */
class StoreModel extends Model {

    //完成
    protected $_auto = array (

    );

    //验证
    protected $_validate = array(
        array('store_name','require', '请填写分店名称'),
        array('store_tel','require', '请选择分店电话'),
        array('store_address','require', '请填写分店地址'),
        array('store_parent_id','parentCheck', '上级栏目关系选择错误', 1 ,'callback',2),
    );

    /**
     * 获取列表
     * @return array 列表
     */
    public function loadList($where = array(), $storeId=0){
        import("Common.Util.Category");
        $data = $this->loadData($where);
        $cat = new \Common\Util\Category(array('store_id', 'store_parent_id','store_name','cstore_name'));
        $data=$cat->getTree($data, intval($storeId));
        return $data;
    }

    /**
     * 获取列表(前台调用)
     * @return array 列表
     */
    public function loadData($where = array(), $limit = 0){
        $data = $this->where($where)->limit($limit)->order($order)->select();
        //组合父店铺
        foreach ($data as $_k => $_v) {
            $store_parent = $this->getInfo($_v['store_parent_id']);
            $data[$_k]['store_parent_name'] = $store_parent['store_name'];
        }
        return $data;
    }

    /**
     * 获取数量
     * @return int 数量
     */
    public function countList($where = array()){
       return $this->where($where)->count();
    }
    /**
     * 获取信息
     * @param int $stordId ID
     * @return array 信息
     */
    public function getInfo($stordId){
    	return $this->where('store_id ='.$stordId)->find();
    }

    /**
     * 获取信息
     * @param array $where 条件
     * @return array 信息
     */
    public function getWhereInfo($where)
    {

    }

    /**
     * 更新信息
     * @param string $type 更新类型
     * @return bool 更新状态
     */
    public function saveData($type = 'add'){
        
        //事务处理
        $this->startTrans();
        $data = $this->create();
        if(!$data){
            $this->rollback();
            return false;
        }
        if($type == 'add'){
            //写入数据
            $status = $this->add();
            if($status){
                $this->commit();
            }else{
                $this->rollback();
            }
            return $status;
        }
        if($type == 'edit'){
            //修改数据
            $status = $this->where('store_id='.$data['store_id'])->save();
            if($status === false){
                $this->rollback();
                return false;
            }
            $this->commit();
            return true;
        }
        $this->rollback();
        return false;
    }

    /**
     * 删除信息
     * @param int $stordId ID
     * @return bool 删除状态
     */
    public function delData($stordId)
    {
        $map = array();
        $map['store_id'] = $stordId;
        return $this->where($map)->delete();
    }

    /**
     * 检查上级栏目
     * @return string 栏目拼音
     */

    public function parentCheck()
    {
        //获取变量
        $storeId= I('post.store_id');
        $parentId = I('post.store_parent_id');

        //判断空上级
        if(!$parentId){
            return true;
        }
        // 分类检测
        if ($storeId == $parentId){
            $this->error = '不可以将当前栏目设置为上一级栏目';
            return false;
        }
        $cstore = $this->loadList('',$storeId);
        if(empty($cstore)){
            return true;
        }
        foreach ($cstore as $vo) {
            if ($parentId == $vo['store_id']) {
                $this->error = '不可以将上一级栏目移动到子栏目';
                return false;
            }
        }
        return true;

    }

}
